//
//  DateUtils.m
//  tounahao
//
//  Created by mokai on 14/11/5.
//  Copyright (c) 2014年 cloudyoo. All rights reserved.
//
#import "DateUtils.h"
#import "F.h"
#import "NSDate+zframework.h"

@implementation DateUtils


/**
 *  获取指定日期月份中的最后一天
 *
 *  @param date
 *
 *  @return
 */
+(NSDate *)lastDayOfMonth:(NSDate *)date{
    NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
    NSRange range = [calendar rangeOfUnit:NSDayCalendarUnit inUnit:NSMonthCalendarUnit forDate:date];
    NSUInteger numberOfDaysInMonth = range.length;
    return [F yyyyMMddFromString:[NSString stringWithFormat:@"%d-%d-%d",date.year,date.month,numberOfDaysInMonth]];
}

/**
 *  获取指定日期一周中的最后一天
 *
 *  @param date
 */
+(NSArray *)weekRange:(NSDate *)date{
    unsigned units=NSMonthCalendarUnit|NSDayCalendarUnit|NSYearCalendarUnit|NSWeekdayCalendarUnit;
    NSCalendar *mycal=[[NSCalendar alloc]initWithCalendarIdentifier:NSGregorianCalendar];
    NSDate *now = date;
    NSDateComponents *comp =[mycal components:units fromDate:now];
    NSInteger month=[comp month];
    NSInteger year =[comp year];
    NSInteger day=[comp day];
    
    NSCalendar *gregorian = [NSCalendar currentCalendar];
    NSDateComponents *dateComps = [gregorian components:NSWeekdayCalendarUnit fromDate:now];
    int daycount = [dateComps weekday] - 2;
    NSDate *weekdaybegin=[now addTimeInterval:-daycount*60*60*24];
    NSDate *weekdayend  =[now  addTimeInterval:(6-daycount)*60*60*24];
    NSDateFormatter *df1=[[NSDateFormatter alloc]init];
    NSLocale *mylocal=[[NSLocale alloc]initWithLocaleIdentifier:@"zh_CN"];
    [df1 setLocale:mylocal];
    [df1 setDateFormat:@"YYYY-MM-d"];
    now=weekdaybegin;
    comp=[mycal components:units fromDate:now];
    month=[comp month];
    year =[comp year];
    day=[comp day];
    
    NSDate *date1= [F yyyyMMddFromString:[[NSString alloc]initWithFormat:@"%d-%02d-%02d",year,month,day]];//所要求的周一的日期
    now=weekdayend;
    comp=[mycal components:units fromDate:now];
    month=[comp month];
    year =[comp year];
    day=[comp day];
    NSDate *date2=[F yyyyMMddFromString:[[NSString alloc]initWithFormat:@"%d-%02d-%02d",year,month,day]];//所要求的周日的日期
    return @[date1,date2];
}


@end
